package com.chb.service;


import com.chb.model.entity.Branch;
import com.chb.model.vo.PageBean;
import com.chb.model.vo.Result;

/**
 * @author ：张家琪
 * @date ：Created in 2023/9/26 22:04
 * @description：
 * @modified By：
 * @version:
 */
public interface BranchService {
    public Result selectAll();

    /**
     * 查询所有分店信息
     */
    public Result findAllBranch();



    /**
     * @param
     * @return com.chb.model.vo.Result
     * @create by: 陈海彬
     * @description: 获取平调分店下拉框信息
     * @create time: 2023/10/3 13:48
     */
    public Result flatInformation();
    /**
     * 查询所有店铺信息（店长、开店时间...）以及该店员工人数
     */
    public PageBean<Branch> selectAllBranchAndStaff(Integer currentPage, Integer pageSize, String branchname);
    /**
     * 根据店铺名称模糊查询店铺信息
     */
    public Result queryBranchInfoBybranchname(Branch branchname);
    /**
     * 添加新的店铺及信息
     */
    public Integer insertNewBranch(Branch branch);
    /**
     * 通过店铺id 进行修改店铺信息
     */
    public Integer updateBranch(Branch branch);
    /**
     * 通过店铺id 进行修改店铺状态（营业/整顿）
     */
    public Integer adjustBranch(Branch branch);
    /**
     * 通过店铺id 删除店铺信息
     */
    public Integer delBranch(Branch branch);
    /**
     * 查询所删除的店铺是否存在商品
     */
    public Result queryProduct(Branch branch);
    /**
     * 查询在职且没有安排岗位的员工（可以安排为店长的员工）
     */
    public Result selectNoArrangementBranch();
    /**
     * 修改员工所在的店铺（修改staff 的 branchid）【确定员工为新店的店长后，将该员工之前的branchid 修改为新店的branchid】
     */
    public Integer changeBranchid(Branch branch);
    /**
     * 给店铺添加上店长的staffid
     */
    public Integer updateStaffidforBranch(Branch branch);

    /**
     * 确定员工为新店的店长后，将该员工之前的roleid 修改为店长的roleid
     * @param branch
     * @return
     */
    public Integer changeRoleid(Branch branch);
    /**
     * 根据员工的staffid 查询roleid 再查询rolename
     */
    public Result selectRoleNameByStaffid(Branch branch);

    /**
     * @create by: xIAO_ZHOU
     * @description: 加载店长调离框中所有职位信息
     * @create time: 2023/10/9 20:44
     * @param
     * @return
     */
    public Result selectAllRoleName();
    /**
     * @create by: xIAO_ZHOU
     * @description: 加载店长调离框中所有店名
     * @create time: 2023/10/9 20:44
     * @param
     * @return
     */
    public Result selectAllBranchName();
    /**
     * @create by: xIAO_ZHOU
     * @description: 调离后将原来店铺的店长staffid改为 null
     * @create time: 2023/10/10 11:18
     * @param
     * @return
     */
    public Integer changeManagerStaffid(Branch branch);

    /**
     * @create by: xIAO_ZHOU
     * @description: 调离后将原来店铺的店长branchid改为 新店的branchid
     * @create time: 2023/10/10 11:46
     * @param
     * @return
     */
    public Integer changeManagerBranchid(Branch branch);
    /**
     * @create by: xIAO_ZHOU
     * @description: 调离后将原来店铺的店长deptid改为 新店的deptid
     * @create time: 2023/10/10 11:46
     * @param
     * @return
     */
    public Integer changeManagerRoleid(Branch branch);



}
